﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MJM.CBD.Conn;
using MJM.SPP.AccesoDatos;
using MJM.SPP.EntidadesNegocio;
using System.Data;
using System.Data.SqlClient;

namespace MJM.SPP.AccesoDatos
{
    public class GrupoOpcionesAD
    {
        public int Insertar(GrupoOpcionesEN objEN)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_i_T_WEB_OPTGRU_Insertar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIDOptGen, prmIDGrupo;
            try
            {
                prmIDGrupo = cmd.CreateParameter();
                prmIDGrupo.ParameterName = "@IDGrupo";
                prmIDGrupo.SqlDbType = SqlDbType.Int;
                prmIDGrupo.Value = objEN.USUGRU_P_inID;
                cmd.Parameters.Add(prmIDGrupo);

                prmIDOptGen = cmd.CreateParameter();
                prmIDOptGen.ParameterName = "@OpcionGeneral";
                prmIDOptGen.SqlDbType = SqlDbType.Int;
                prmIDOptGen.Value = objEN.OPTGEN_P_inID;
                cmd.Parameters.Add(prmIDOptGen);
/*
                prmEliminado = cmd.CreateParameter();
                prmEliminado.ParameterName = "@Eliminado";
                prmEliminado.SqlDbType = SqlDbType.Int;
                prmEliminado.Value = objEN.SEGU_inFLAELI;
                cmd.Parameters.Add(prmEliminado);
*/
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }
            return 1;
        }

        public List<GrupoOpcionesEN> Listar()
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_WEB_OPTGRU_Listar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            List<GrupoOpcionesEN> lst=new List<GrupoOpcionesEN>();
            SqlDataReader dr;
            try
            {                
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                GrupoOpcionesEN obj;
                while (dr.Read())
                {
                    obj = new GrupoOpcionesEN();
                    obj.OPTGEN_P_inID = dr.GetInt32(dr.GetOrdinal("OPTGEN_P_inID"));
                    obj.OPTGRU_P_inID = dr.GetInt32(dr.GetOrdinal("OPTGRU_P_inID"));
                    obj.SEGU_inFLAELI = dr.GetInt32(dr.GetOrdinal("SEGU_inFLAELI"));
                    obj.USUGRU_P_inID = dr.GetInt32(dr.GetOrdinal("USUGRU_P_inID"));
                    lst.Add(obj);
                }
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch(Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
            }

            return lst;
        }

        public int EliminarOpcion(int ID)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_u_T_WEB_OPTGRU_Eliminar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmCodigo;
            try
            {
                prmCodigo = cmd.CreateParameter();
                prmCodigo.ParameterName = "@vOPTGRU_P_inID";
                prmCodigo.SqlDbType = SqlDbType.Int;
                prmCodigo.Value = ID;
                cmd.Parameters.Add(prmCodigo);

                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                cmd.Connection.Close();

                cmd.Dispose();
                conn.Dispose();
            }
            catch(Exception ee)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }
            return 1;
        }
    }
}
